Virtualization technology's emergence as a core Infrastructure as a Service (IaaS) backbone for variety of cloud deployments is well-known. Over the period of last 10 years, advances in x86 hardware assists have paved the way for performance and scalability focused virtualization solutions. Hypervisors, otherwise known as Virtual Machine Monitors (VMM), employ software instruction intercept mechanisms to emulate CPU, memory & I/O resources to allow for operating systems (OS) to run as guests. Properly written VMM can provide reliable, secure & accurate virtual systemic view to the guest OS. This is used to leverage modern architectural features of recent operating systems running under a virtualized hardware view. Server virtualization can be further classified into compute, network and storage virtualizations.
Many advances in CPU and memory virtualization techniques have enabled guest operating systems to run efficiently on virtualized hardware. Innovations in compute virtualization techniques are mainly in the CPU and memory related hardware virtualization assists as well as in their software leverage points in Hypervisors. Network virtualization plays a major role in defining inter-VM network behavior. Virtualization based IaaS often mimics existing Datacenter inter-networking assumptions and defines new virtual inter-networking paradigms. Typical Virtual inter-networking involves three types of functional elements, namely virtual NICs, virtual network elements, such as L2 switches, and virtual to physical packet flow. Virtual NICs are presented as an emulated device or SR-IOV mapped PCI virtual function. Virtual Network elements and flow management are typically exposed as a “Virtual Switch.”
Traditionally, non-virtualized server-side switching has four layers. The first layer is a core layer that handles Layer-2 (L2) switching backplanes. This includes storage (through director switches) and server network switches. L2 switches are where a server network interface card (NIC) connects. The second layer is an aggregation layer that includes an aggregator switch that takes care of distinct L2 switch inter-connection. The third layer includes control functions for ACL, VLAN configuration, and the fourth layer includes Layer-4 through 7 switches for load balancing, address translation, firewall, BI/DPI functions etc. In a nut-shell, each physical server and applications running on those servers are bonded to 1 or more NIC cards, NICs connect to L2 or L3 or L4-L7 switches for layered internetworking operations.
The virtualized switching plane plays a major role in the convergence of existing core physical inter-networking layers with new inter-VM networking abstractions. A smoother transition to virtualization based inter-networking warrants proper “plumbing” of physical inter-networking functions with a virtual machine layer. Ethernet switch networking vendors are providing external “Virtualization-aware” switching solutions. Most of these exist, however, as an external switch. On the other side, NIC card vendors are implementing in-hardware virtualization assists such as virtual machine device queues (VMD) or single-root I/O virtualization (SR-IOV) for virtual machine (VM) assigned data flow and IEEE 801.2 layer-2 switching capabilities. Although few proposals have been made to make “Edge Switching” seem more attractive for next generation data centers including hints of leveraging NIC features for TSO (TCP Segmentation Offload), checksum/GRE/IPSec offloading, these proposals do not elaborate on techniques on just how to leverage these “offloaded” features.